The disclosure relates generally to a method and apparatus for providing an interface for a user interacting with a file system.
Modern computer user interfaces (UI) allow humans to interact productively with information machines and have seen progress from punch cards, to command-line interpreters, to 2D windowed interfaces. The root of the interface found on all of today's desktop computers originated in the 1970's but the interaction has remained fundamentally the same since. There have been improvements in UI features, appearance, and speed, but the underlying method in which a human uses a desktop computer remains accomplished through a keyboard and mouse, manipulating 2D windows that contain the user's information. User data is hidden in windows behind other windows, and accessed via clicking on icons and click-intensive dropdowns, list boxes and scrollbars.
In the traditional 2D window model, a file icon represents a file connected to a file system. This model is “application-centric” because data included in a file must be manipulated within software applications. By double clicking on a file icon, a separate (typically “thick”) software application launches and the data in the file is manipulated within that software application. The software application will have an exclusive control of the data until the software application is closed, i.e. other software applications cannot process the data in parallel. Alternatively, a thick application is launched and then data is “opened” from within this application. Under this model, the resulting modified data set has a limited capability to convey its new contents via the simple 2D icon, i.e. the 2D icon may not reflect the new content after the data is modified by a thick application. Moreover, in a situation where the data needs to be manipulated by multiple thick applications, the manipulations need to occur in series, one at a time.
Another problem associated with the traditional 2D windows model is that it requires a user to have knowledge about software applications' capability to process data of a particular data type. For example, to manipulate JPEG data, a user must know which applications installed on the system provide tool actions that can process JPEG data. However, novice users are often not equipped with that type of knowledge.
As an improvement, some operating systems, like Microsoft Windows™, associate a data type (e.g. txt, mov, mpeg, JPEG, etc) with a default application. Under that approach, the OS will automatically launch the default application corresponding to the data type of the data selected by the user to process such data if the user does not launch an application on user's own. However, the drawback associated with this approach is inflexibility such that, absent user's selection of an application, the OS can only provide the user the default application to process the data. In certain circumstances, the user may not wish to use the default application to process the data even though the user does not know of any other applications available to process the data. For example, the default application may not provide desired or adequate functions to process the data in a way the user prefers.
Even for users having knowledge of a set of software applications that can process data of particular data type, such users may still have to launch every application of the set to determine which of these applications provides the most suitable tool action for a particular purpose. For example, a user may know several text editing programs are available to edit the user data, but the user may not know which program provides the most suitable editing capability to achieve the user's purpose. To find the most suitable tool action, the user will need to launch every such text editing program, explore through a plurality of tool interfaces provided by the text editing program, e.g. menu bars, tool bars, etc, and determine which program provides the most suitable tool action to process the data. This can become a very cumbersome practice for the user especially when there are multiple tool interfaces in each program.
Microsoft Windows™, Apple Macintosh™ and Linux operating systems are a few well-known examples of the traditional 2D window model. In these systems, to process data in such an application-centric scheme, the user needs to know which application may process the data of one or more selected files, and which tool action provided by one of such applications may be most suitable for user's purpose to process the data. Accordingly, the user may have to take some time and effort to discover a desired tool action suitable to process the data of a file connected to a file system.
As an improvement, file visualizers have been implemented to provide a preview of content of a file connected to a file system. For example, for a file with a JPEG file type, i.e. an image file; an appropriate file visualizer will display a preview of the image, e.g. a reduced sized actual image, in a preview window visible in a file manager provided by the OS. This provides the user an intuitive way to learn the content of a file. However, to determine which program provides the most suitable tool action to process the data of the file, the user may still wish to know about all available installed software applications that can process the data of the file.
Accordingly, there exists a need for improved methods and apparatus for providing an interface for a user to interact with a file system in order to address one or more problems mentioned above.